#ifndef COMMONLIBRARIES_H
#define COMMONLIBRARIES_H

#include <AIS_Drawer.hxx>
#include <AIS_InteractiveContext.hxx>
#include <AIS_InteractiveObject.hxx>
#include <AIS_ListIteratorOfListOfInteractive.hxx>
#include <AIS_ListOfInteractive.hxx>
#include <AIS_SequenceOfInteractive.hxx>
#include <AIS_Shape.hxx>
#include <AIS_StatusOfDetection.hxx>
#include <AIS_StatusOfPick.hxx>
#include <AIS_Trihedron.hxx>
#include <Aspect_Background.hxx>
#include <Aspect_ColorMapEntry.hxx>
#include <Aspect_Drawable.hxx>
#include <Aspect_GenericColorMap.hxx>
#include <Aspect_GraphicCallbackProc.hxx>
#include <Aspect_GridDrawMode.hxx>
#include <Aspect_GridType.hxx>
#include <Aspect_LineStyle.hxx>
#include <Aspect_MarkMap.hxx>
#include <Aspect_RectangularGrid.hxx>
#include <Aspect_TypeMap.hxx>
#include <Aspect_TypeMapEntry.hxx>
#include <Aspect_TypeOfLine.hxx>
#include <Aspect_TypeOfText.hxx>
#include <Aspect_WidthMapEntry.hxx>
#include <Aspect_WidthOfLine.hxx>
#include <Aspect_Window.hxx>
#include <Bnd_Box2d.hxx>
#include <BndLib_Add2dCurve.hxx>
//#include <BOPTools_DSFiller.hxx>
#include <BRepAdaptor_HCurve.hxx>
#include <BRepFill_CurveConstraint.hxx>
#include <GeomPlate_PointConstraint.hxx>
#include <BRep_Builder.hxx>
#include <BRep_Tool.hxx>
#include <BRepAlgo.hxx>
#include <BRepAlgoAPI_Cut.hxx>
#include <BRepAlgoAPI_Section.hxx>
#include <BRepBuilderAPI.hxx>
#include <BRepBuilderAPI_MakeEdge.hxx>
#include <BRepBuilderAPI_MakeFace.hxx>
#include <BRepBuilderAPI_MakeShell.hxx> 
#include <BRepBuilderAPI_MakeVertex.hxx>
#include <BRepBuilderAPI_MakeWire.hxx>
#include <BRepOffsetAPI_MakePipeShell.hxx>
#include <BRepBuilderAPI_TransitionMode.hxx>
#include <BRepBuilderAPI_Copy.hxx>
#include <BRepOffsetAPI_MakePipe.hxx>
#include <BRepPrimAPI_MakeSphere.hxx>
#include <BRepCheck_Analyzer.hxx>
#include <ShapeFix_ShapeTolerance.hxx>
#include <Handle_ShapeFix_Shape.hxx>
#include <ShapeFix_Shape.hxx>

//#include <BRepBuilderAPI_RoundCorner.hxx>
#include <BRepFill_Filling.hxx>
#include <BRepBuilderAPI_Transform.hxx>
#include <BRepBuilderAPI_GTransform.hxx>
#include <BRepExtrema_ExtPF.hxx>
#include <BRepExtrema_ExtCC.hxx>
#include <BRepFeat_SplitShape.hxx>
#include <BRepFeat_MakePrism.hxx>
#include <BRepGProp_Face.hxx>
#include <GProp_PEquation.hxx>
#include <BRepLib.hxx>
#include <GeomPlate_BuildAveragePlane.hxx>
#include <GeomAPI.hxx>
#include <BRepProj_Projection.hxx>
#include <Bnd_Box.hxx>
#include <BRepBndLib.hxx>
#include <BRepOffsetAPI_MakeOffset.hxx>
#include <BRepOffsetAPI_MakeOffsetShape.hxx>
#include <BRepOffsetAPI_MakeThickSolid.hxx>
#include <BRepOffsetAPI_ThruSections.hxx>
#include <BRepPrimAPI_MakePrism.hxx>
#include <BRepPrimAPI_MakeRevol.hxx>
#include <BRepPrimAPI_MakeRevolution.hxx>
#include <BRepPrimAPI_MakeBox.hxx>
#include <BRepBuilderAPI_MakeSolid.hxx>
#include <BRepProj_Projection.hxx>
#include <BRepBuilderAPI_MakePolygon.hxx>
#include <BRepTools.hxx>
#include <BRepAlgoAPI_Fuse.hxx>
#include <BRepAlgoAPI_Common.hxx>
#include <BSplCLib.hxx>
#include <csv.h>
#include <DsgPrs_LengthPresentation.hxx>
#include <FSD_File.hxx>
#include <GC_MakeEllipse.hxx>
#include <GC_MakeCircle.hxx>
#include <GC_MakeConicalSurface.hxx>
#include <GC_MakePlane.hxx> 
#include <Handle_Geom_ToroidalSurface.hxx>
#include <Geom_ToroidalSurface.hxx>
#include <GeomPlate_BuildPlateSurface.hxx>
#include <Handle_GeomPlate_Surface.hxx>
#include <GeomPlate_Surface.hxx>
#include <GeomPlate_MakeApprox.hxx>
#include <GeomFill_Pipe.hxx>
#include <BRepFill_Pipe.hxx> 
#include <BRepOffsetAPI_Sewing.hxx>
#include <Geom_BezierCurve.hxx>
#include <Geom2dAPI_PointsToBSpline.hxx>
//#include <AIS_Text.h>
#include <BRepExtrema_DistShapeShape.hxx>
#include <GeomAPI_IntCS.hxx>
#include <TColStd_Array1OfReal.hxx>
#include <Graphic3d_Array1OfVertex.hxx>
#include <Graphic3d_Group.hxx>
#include <Handle_Geom_Circle.hxx>
#include <GC_MakeCircle.hxx>
#include <GC_MakeArcOfCircle.hxx>
#include <GC_MakeArcOfEllipse.hxx>
#include <GCE2d_MakeSegment.hxx>
#include <GCPnts_TangentialDeflection.hxx>
#include <Geom_Axis2Placement.hxx>
#include <Geom_BezierSurface.hxx>
#include <Geom_BSplineCurve.hxx>
#include <Geom_BSplineSurface.hxx>
#include <Geom_CartesianPoint.hxx>
#include <Geom_Circle.hxx>
#include <Geom_ConicalSurface.hxx>
#include <Geom_Hyperbola.hxx>
#include <Geom_Line.hxx>
#include <Geom_OffsetSurface.hxx>
#include <Handle_Geom_Ellipse.hxx>
#include <Geom_Ellipse.hxx>
#include <Geom_Plane.hxx>
#include <Geom_RectangularTrimmedSurface.hxx>
#include <Geom_Surface.hxx>
#include <Geom_SurfaceOfLinearExtrusion.hxx>
#include <Geom_SurfaceOfRevolution.hxx>
#include <Geom_TrimmedCurve.hxx>
#include <Geom2dAPI_InterCurveCurve.hxx>
#include <Geom2d_BezierCurve.hxx>
#include <Geom2d_BSplineCurve.hxx>
#include <Geom2d_Curve.hxx>
#include <Geom2d_Circle.hxx>
#include <Geom2d_Ellipse.hxx>
#include <Geom2d_TrimmedCurve.hxx>
#include <Geom2dAdaptor_Curve.hxx>
#include <GeomAbs_CurveType.hxx>
#include <GeomAdaptor_Curve.hxx>
#include <GeomAdaptor_HCurve.hxx>
#include <GeomAdaptor_HSurface.hxx>
#include <GeomAPI_Interpolate.hxx>
#include <GeomAPI_IntSS.hxx>
#include <GeomAPI_PointsToBSpline.hxx>
#include <GeomAPI_ProjectPointOnSurf.hxx>
#include <GeomConvert.hxx>
#include <GeomProjLib.hxx>
#include <GeomTools_Curve2dSet.hxx>
//#include <GGraphic2d_SetOfCurves.hxx>
#include <GCE2d_MakeCircle.hxx>
#include <GccAna_Lin2d2Tan.hxx>
#include <gp_Lin2d.hxx>
#include <GccEnt_QualifiedLin.hxx>
#include <GccEnt.hxx>
#include <GccAna_Circ2d2TanRad.hxx>
#include <gp_GTrsf.hxx>

#include <Geom_SphericalSurface.hxx>
#include <gp_Ax2d.hxx>
#include <gp_Circ.hxx>
#include <gp_Circ2d.hxx>
#include <gp_Dir.hxx>
#include <gp_Dir2d.hxx>
#include <gp_Elips.hxx>
#include <gp_Lin.hxx>
#include <gp_Lin2d.hxx>
#include <gp_Pln.hxx>
#include <gp_Pnt.hxx>
#include <gp_Pnt2d.hxx>
#include <gp_Vec.hxx>
#include <gp_Vec2d.hxx>
#include <GProp_GProps.hxx>
#include <BRepGProp.hxx>
#include <BRepMesh.hxx>
//#include <Graphic2d_Array1OfVertex.hxx>
//#include <Graphic2d_Buffer.hxx>
//#include <Graphic2d_CircleMarker.hxx>
//#include <Graphic2d_DisplayList.hxx>
//#include <Graphic2d_Drawer.hxx>
//#include <Graphic2d_Polyline.hxx>
//#include <Graphic2d_Segment.hxx>
//#include <Graphic2d_SetOfSegments.hxx>
//#include <Graphic2d_Text.hxx>
//#include <Graphic2d_Vertex.hxx>
//#include <Graphic2d_View.hxx>
#include <Graphic3d_AspectMarker3d.hxx>
#include <Graphic3d_NameOfMaterial.hxx>
#include <GeomLib.hxx>
#include <Handle_Geom2d_Circle.hxx>
#include <Handle_Geom_Circle.hxx>
#include <Handle_AIS_Shape.hxx>
#include <Handle_TopTools_HSequenceOfShape.hxx>
#include <Handle_WNT_Window.hxx>
//#include <Handle_Graphic3d_WNTGraphicDevice.hxx>
#include <Handle_V3d_View.hxx>
#include <HLRAlgo_Projector.hxx>
#include <HLRAlgo_Projector.hxx>
#include <HLRBRep_Algo.hxx>
#include <HLRBRep_HLRToShape.hxx>
#include <HLRBRep_PolyAlgo.hxx>
#include <HLRBRep_PolyHLRToShape.hxx>
#include <IFSelect_ReturnStatus.hxx>
#include <IGESControl_Controller.hxx>
#include <IGESControl_Reader.hxx>
#include <IGESControl_Writer.hxx>
#include <IGESToBRep_Actor.hxx>
#include <IGESToBRep_Reader.hxx>
#include <IntAna_IntConicQuad.hxx>
#include <Interface_InterfaceModel.hxx>
#include <Interface_Static.hxx>
#include <IntTools_FaceFace.hxx>
#include <IntTools_Curve.hxx>
#include <MgtBRep.hxx>
#include <MMgt_TShared.hxx>
#include <NIS_InteractiveContext.hxx>
#include <OSD_Environment.hxx>
#include <Precision.hxx>
#include <ProjLib_ComputeApprox.hxx>
#include <ProjLib_ProjectOnSurface.hxx>
#include <Prs3d_IsoAspect.hxx>
#include <Prs3d_LineAspect.hxx>
#include <Prs3d_Projector.hxx>
#include <Prs3d_Text.hxx>
//#include <PrsMgr_PresentationManager2d.hxx>
#include <PTColStd_PersistentTransientMap.hxx>
#include <PTColStd_TransientPersistentMap.hxx>
#include <PTopoDS_HShape.hxx>
#include <GeomAPI_ProjectPointOnCurve.hxx>
#include <qDebug>
#include <QFile>
#include <QProgressDialog>
#include <Quantity_Factor.hxx>
#include <Quantity_Length.hxx>
#include <Quantity_NameOfColor.hxx>
#include <Quantity_PhysicalQuantity.hxx>
#include <Quantity_PlaneAngle.hxx>
#include <Quantity_TypeOfColor.hxx>
//#include <Select2D_SensitiveArc.hxx>
//#include <Select2D_SensitiveBox.hxx>
//#include <Select2D_SensitiveEntity.hxx>
//#include <Select2D_SensitiveSegment.hxx>
#include <SelectBasics_BasicTool.hxx>
#include <SelectBasics_ListOfBox2d.hxx>
#include <SelectMgr_EntityOwner.hxx>
#include <SelectMgr_SelectableObject.hxx>
#include <SelectMgr_Selection.hxx>
#include <SelectMgr_SelectionManager.hxx>
#include <ShapeAnalysis_Surface.hxx>
#include <ShapeSchema.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_CString.hxx>
#include <Standard_DefineHandle.hxx>
#include <Standard_ErrorHandler.hxx>
#include <Standard_Integer.hxx>
#include <Standard_IStream.hxx>
#include <Standard_Macro.hxx>
#include <Standard_NotImplemented.hxx>
#include <Standard_OStream.hxx>
#include <Standard_Real.hxx>
#include <Standard_TypeDef.hxx>
#include <StdPrs_Curve.hxx>
#include <StdPrs_Point.hxx>
#include <StdPrs_PoleCurve.hxx>
//#include <StdSelect_SensitiveText2d.hxx>
//#include <StdSelect_TextProjector2d.hxx>
//#include <StdSelect_ViewerSelector2d.hxx>
#include <STEPControl_Controller.hxx>
#include <STEPControl_Reader.hxx>
#include <STEPControl_StepModelType.hxx>
#include <STEPControl_Writer.hxx>
#include <StlAPI_Writer.hxx>
#include <Storage_Data.hxx>
#include <Storage_Error.hxx>
#include <Storage_HSeqOfRoot.hxx>
#include <Storage_Root.hxx>
#include <TColgp_Array1OfPnt.hxx>
#include <TColgp_Array1OfPnt2d.hxx>
#include <TColgp_HArray1OfPnt.hxx>
#include <TColgp_HArray1OfPnt2d.hxx>
#include <TCollection_AsciiString.hxx>
#include <TCollection_ExtendedString.hxx>
#include <TColStd_HSequenceOfTransient.hxx>
#include <TColStd_MapIteratorOfMapOfTransient.hxx>
#include <TColStd_MapOfTransient.hxx>
#include <TColStd_SequenceOfExtendedString.hxx>
#include <TDF_LabelSequence.hxx>
#include <TopExp.hxx>
#include <TopExp_Explorer.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Compound.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_ListIteratorOfListOfShape.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Shell.hxx>
#include <TopoDS_Solid.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopoDS_Wire.hxx>
#include <TopAbs_ShapeEnum.hxx>
#include <TopTools_HSequenceOfShape.hxx>
#include <TopTools_ListIteratorOfListOfShape.hxx>
#include <TopTools_ListOfShape.hxx>
#include <TPrsStd_AISViewer.hxx>
#include <UnitsAPI.hxx>
#include <User_AIS.hxx>
//#include <V2d_View.hxx>
//#include <V2d_Viewer.hxx>
#include <V3d_ColorScale.hxx>
#include <V3d_Coordinate.hxx>
#include <V3d_RectangularGrid.hxx>
#include <V3d_View.hxx>
#include <V3d_Viewer.hxx>
#include <Visual3d_View.hxx>
#include <Visual3d_ViewManager.hxx>
#include <Visual3d_ViewMapping.hxx>
#include <VrmlAPI_Writer.hxx>
#include <XSControl_WorkSession.hxx>
#include <WNT_Window.hxx>
#include "windows.h"


#include <qocccontroller.h>






#define SIGN(X) ((X) < 0. ? -1 : ((X) > 0. ? 1 : 0.))
#define INITIAL_PRECISION 0.001


#endif 
